
angular.module('myorder-gwb.controller', ['myorder-gwb.service'])
    .controller("MyorderGwbCtrl", function ($scope, $http, $rootScope, $location) {
        //    密码框中的付款按钮（未完成） 订单支付的参数未完善


        var CCSessionId =localStorage.getItem("CCSessionId");//获取sessionid
             //获取接口前缀

        //获取URL的值，，观察是否变化（进入过myorder-pay页面 与没进入的区别）  下面几处都要用到
        var con = decodeURI($location.$$url.split('/tab/myorder-gwb?')[1])

        var port0='/order/order.json?'
        var url0=$rootScope.myglobal.serverurl+port0+'CCSessionId='+CCSessionId;
        var port1='/account/account/1.json?';
        var url1=$rootScope.myglobal.serverurl+port1+'CCSessionId='+CCSessionId;
        var port2='/order/order/1/deleteConfirm.json?';
        var url2=$rootScope.myglobal.serverurl+port2+'CCSessionId='+CCSessionId;
        var port3='/fk/fk.json?';
        var url3=$rootScope.myglobal.serverurl+port3+'CCSessionId='+CCSessionId;

        //获得订单数据
        $scope.ordertype = function (a) {
            $rootScope.statestype = a;


            $http.get(url0+ '&pageIndex=1&flag=2&status=' + a + '&pageSize=5')
                .success(function (data) {
                    console.log(data);
                    $scope.arrlist = data;
                })
        }
        //判断  $rootScope.payerno存在的时候  说明已经重新选择了支付账户
        // 说明进入过myorder-pay页面

        if ($rootScope.payerno) {
            $scope.ordertype($rootScope.statestype)

        } else {
            $scope.ordertype(0)
        }


        //每一个订单中处于的状态
        $scope.statustype = function (a) {
            var state = null;
            $scope.paystyle = {display: 'block'};
            $scope.cancelstyle = {display: 'block'};
            switch (a) {
                case 10:
                    state = '待确认';
                    $scope.paystyle = {display: 'none'}
                    break;
                case 20:
                    state = '待付款';
                    break;
                case 30:
                    state = '待发货';
                    break;
                case 40:
                    state = '待收货';
                    break;
                case 50:
                    state = '尾款支付';
                    break;
                case 60:
                    state = '待取消';
                    break;
                case 70:
                    state = '待返金';
                    break;
                case 90:
                    state = '订单取消';
                    $scope.paystyle = {display: 'none'};
                    $scope.cancelstyle = {display: 'none'};
                    break;
                case 99:
                    state = '完成订单';
                    $scope.paystyle = {display: 'none'};
                    $scope.cancelstyle = {display: 'none'};
                    break;


            }
            return state;
        }


        //订单支付时获取默认付款账户
        $http.get(url1+ '&defaultAcctFlag=1')
            .success(function (data) {
                console.log(data);
                console.log($rootScope.payerno);
                if (!$rootScope.payerno) {
                    $scope.data = data.defaultAcct;
                    //调用下面的一个函数
                    accountLevel(data.defaultAcct.accountLevel)


                }

            })

        ////判断  $rootScope.payerno存在的时候  说明已经从新选择了支付账户
        if ($rootScope.payerno) {
            console.log(123456, $rootScope.payerno);
            $scope.data = $rootScope.payerno
            //调用下面的一个函数
            accountLevel($rootScope.payerno.accountLevel)

        }
        //   与$scope.data有关
        //   accountLevel如果所选账户的这个字段为1，则需要在支付密码页面额外输入两项内容
        // （所在任务和消费类目），如果所选账户这个字段为0，则保持原支付密码页面。

        function accountLevel(a) {
            if (a == 1) {
                $scope.addorreduce = {
                    display: "block"
                }
            } else {
                $scope.addorreduce = {
                    display: "none"
                }
            }
        }


        //点击密码框的隐藏和显现
        $scope.appear = function (a) {

            console.log(a.orderAmount);
            $scope.bgpw = {
                display: "block"
            }
            $scope.shouldpay = a.orderAmount

            $scope.pwvalue = '';
            //当进入myorder-pay页面返回后  刷新myorder-gwb页面 密码框仍会处于block状态
            //即便点击取消后刷新  也会如此

            sessionStorage.setItem('display', 'block')
            //将a值存储起来 以便调用下面的$scope.appear（）时传参
            //用sessionStorage存储
            //$rootScope.price = a;

            sessionStorage.setItem('price', JSON.stringify(a))

        }


        $scope.cancel = function () {
            $scope.bgpw = {
                display: "none"
            }
            sessionStorage.setItem('display', 'none')
        }
        //当进入myorder-pay页面返回后  刷新myorder-gwb页面 密码框仍会处于block状态
        //即便点击取消后刷新  也会如此
        //为解决这个问题 采取下面处理
        console.log(sessionStorage.getItem('display'));
        var getdisplay = sessionStorage.getItem('display')


        //    当点击消费品类和所在任务时支付密码框依然显示
        if (con == "con") {
            console.log('1');
            //此时如果$scope.appear()要传值否则上面的 函数的a为undefined $scope.shouldpay不渲染
            $scope.appear(JSON.parse(sessionStorage.getItem('price')));

        }
        //当进入myorder-pay页面返回后  刷新myorder-gwb页面 密码框仍会处于block状态
        //即便点击取消后刷新  也会如此
        //  之所以将getdisplay放在 if (con == "con")这个判断之前 执行内部行为时将
        // sessionStorage.getItem('display') 再次存储为 block；
        if (getdisplay == 'none') {
            console.log('2');
            $scope.bgpw = {
                display: "none"
            }
        }


        //    取消订单功能

        $scope.cancelorder = function (a) {
            $http.get(url2 + '&order.orderNo=' + a.acctId + '&order.category=' + 03 +
                    '&order.operateCode=021190&order.payMethod' + a.payMethod +
                    '&order.productId=' + a.productId)
                .success(function (data) {
                    console.log(data);
                    if (data.error) {
                        alert(data.error)
                        return
                    } else if ('021190'.indexOf(data.operateCode) < 0) {
                        alert('此订单无取消功能')
                        return
                    }
                    console.log(data);
                })
        }


        //    密码框中的付款按钮
        /*
         * 第一步获得付款人和收款人信息
         *
         * 第二步获取 选择所在任务的编码
         * 第三步 获取  选择消费品类的编码
         * 第四步 输入密码并成功
         * 第五步 付款提交
         *
         * */

        var payerAcctId = null, officalProjectId = null, officalPayType = null;


        //    付款提交
        $scope.paysubmit = function () {
            //    获取商家（收款方）的信息
           var pf= JSON.parse(sessionStorage.getItem('price'));


            //    第一步  4.1   获得付款方账户
            payerAcctId = $scope.data.id;

            if ($rootScope.task) {
                //    第二步  4.12   获得所在任务编码
                officalProjectId = $rootScope.task.projectId
            }
            if ($rootScope.chooseclass) {
                //    第二步  4.13   获得消费品类编码
                officalPayType = $rootScope.chooseclass.itemCode
            }


            console.log($scope.data.id);
            //参数  付款的金额
            var amount = $scope.shouldpay;
            console.log(amount);
            //参数   pathType	汇路 1-大额2-小额	根据金额判断，大于等于5w是1 否则是2
            var pathType = null;
            if (amount >= 50000) {
                pathType = 1;
            } else {
                pathType = 2;
            }
            //参数
            var orderNo = JSON.parse(sessionStorage.getItem('price')).acctId;


            //    获取输入密码
            var passw = $scope.pwvalue;
            console.log(passw);
            if (passw == '') {
                alert('请输入密码')
            }


            //第五步的参数

            //要判断一下付账账户存在消费类品或选择任务   存在与否 输入参数有区别

            var parames=null;
            var parame =  '&payerAcctId=' + payerAcctId + '&currency=1' + '&pathType=' + pathType +
                '&urgentType=0&payType=0&payNow=1' +
                '&orderNo=' + orderNo +'&payeeAcctId='+pf.acctId+
                '&amount=' + amount+'&payeeAcctName='+pf.acctName+'&payeeAcctNo='+pf.acctNo+
                '&payeeBankNo='+pf.bankNo+'&payeeBankBranchNo='+pf.bankBranchNo +
                '&payeeBankBranchName='+pf.bankBranchNo;
            //$scope.data是选择的付款的对象
            if ($scope.data.accountLevel == 1) {
                /*参数   缺少   传payeeAcctName,payeeAcctNo, payeeBankNo,
                // payeeBankBranchNo, payeeBankBranchName, 由订单列表获得
                */
                parames = parame+ '&officalProjectId=' + officalProjectId +
                    '&officalPayType=' + officalPayType ;
            } else {
                parames =parame;
        }


            //* 第四步 输入密码并成功  4.10
            $http.post(url3+ '&payPassword=' + passw + "&systemFlag=2"
            ).success(function (data) {
                console.log(data);
                console.log(data.error);
                if (data.error) {

                    alert(data.error)
                } else if (data.msg !== null && data.msg !== '') {
                    //    如果密码输入正确  返回数据data.msg为一个  电话号码   然后第五步实现

                    //    第五步付款提交     4.4


                    $http.post(url3+ parames)
                        .success(function (data2) {
                            console.log(data2);
                            if (data2.error) {
                                alert(data2.error)
                                return
                            }
                          alert(data2.msg)
                        })

                }
            })


        }


    })



